package com.zz.inventory.domain;

import java.math.BigDecimal;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.core.annotation.Excel;
import com.ruoyi.common.core.web.domain.BaseEntity;

/**
 * 学生考试记录对象 student_exam_records
 * 
 * @author ruoyi
 * @date 2025-07-03
 */
public class StudentExamRecords extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 记录ID */
    private Long recordId;

    /** 考试ID */
    @Excel(name = "考试ID")
    private Long examId;

    /** 学生ID */
    @Excel(name = "学生ID")
    private Long studentId;

    /** 客户端ID */
    @Excel(name = "客户端ID")
    private Long clientId;

    /** 原始数据 */
    @Excel(name = "原始数据")
    private String rawData;

    /** 自动评分 */
    @Excel(name = "自动评分")
    private BigDecimal autoScore;

    /** 最终评分（含人工复核） */
    @Excel(name = "最终评分", readConverterExp = "含=人工复核")
    private BigDecimal finalScore;

    /** 评分状态 */
    @Excel(name = "评分状态")
    private String scoreStatus;

    /** 提交时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "提交时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date submitTime;

    /** 复核时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "复核时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date reviewTime;

    /** 复核人 */
    @Excel(name = "复核人")
    private Long reviewerId;

    /** 复核评论 */
    @Excel(name = "复核评论")
    private String comments;

    public void setRecordId(Long recordId) 
    {
        this.recordId = recordId;
    }

    public Long getRecordId() 
    {
        return recordId;
    }

    public void setExamId(Long examId) 
    {
        this.examId = examId;
    }

    public Long getExamId() 
    {
        return examId;
    }

    public void setStudentId(Long studentId) 
    {
        this.studentId = studentId;
    }

    public Long getStudentId() 
    {
        return studentId;
    }

    public void setClientId(Long clientId) 
    {
        this.clientId = clientId;
    }

    public Long getClientId() 
    {
        return clientId;
    }

    public void setRawData(String rawData) 
    {
        this.rawData = rawData;
    }

    public String getRawData() 
    {
        return rawData;
    }

    public void setAutoScore(BigDecimal autoScore) 
    {
        this.autoScore = autoScore;
    }

    public BigDecimal getAutoScore() 
    {
        return autoScore;
    }

    public void setFinalScore(BigDecimal finalScore) 
    {
        this.finalScore = finalScore;
    }

    public BigDecimal getFinalScore() 
    {
        return finalScore;
    }

    public void setScoreStatus(String scoreStatus) 
    {
        this.scoreStatus = scoreStatus;
    }

    public String getScoreStatus() 
    {
        return scoreStatus;
    }

    public void setSubmitTime(Date submitTime) 
    {
        this.submitTime = submitTime;
    }

    public Date getSubmitTime() 
    {
        return submitTime;
    }

    public void setReviewTime(Date reviewTime) 
    {
        this.reviewTime = reviewTime;
    }

    public Date getReviewTime() 
    {
        return reviewTime;
    }

    public void setReviewerId(Long reviewerId) 
    {
        this.reviewerId = reviewerId;
    }

    public Long getReviewerId() 
    {
        return reviewerId;
    }

    public void setComments(String comments) 
    {
        this.comments = comments;
    }

    public String getComments() 
    {
        return comments;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("recordId", getRecordId())
            .append("examId", getExamId())
            .append("studentId", getStudentId())
            .append("clientId", getClientId())
            .append("rawData", getRawData())
            .append("autoScore", getAutoScore())
            .append("finalScore", getFinalScore())
            .append("scoreStatus", getScoreStatus())
            .append("submitTime", getSubmitTime())
            .append("reviewTime", getReviewTime())
            .append("reviewerId", getReviewerId())
            .append("comments", getComments())
            .toString();
    }
}
